package whu.o2o.util;

import java.io.ByteArrayInputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import whu.o2o.vo.MessageVO;




public class ParserXML_2 {

	/**
	 * ����ͨѶXML
	 * @param xml
	 * @return
	 */
	public static void parserSocketXML(String xml,MessageVO vo){
		try
		{
			DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
			ByteArrayInputStream buf = new ByteArrayInputStream(xml.getBytes("UTF-8"));
			DocumentBuilder db=dbf.newDocumentBuilder();
			Document dom=db.parse(buf);
			Element root=dom.getDocumentElement();
			if(root.getElementsByTagName("fk")!=null){
				Element nnode=(Element)root.getElementsByTagName("fk").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setUid(s);
				}					
			}
			if(root.getElementsByTagName("actiontype")!=null){
				Element nnode=(Element)root.getElementsByTagName("actiontype").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setActiontype(s);
				}					
			}
			if(root.getElementsByTagName("type")!=null){
				Element nnode=(Element)root.getElementsByTagName("type").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setType(s);
				}					
			}
			if(root.getElementsByTagName("content")!=null){
				Element nnode=(Element)root.getElementsByTagName("content").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setContent(s);
				}					
			}
			if(root.getElementsByTagName("groupid")!=null){
				Element nnode=(Element)root.getElementsByTagName("groupid").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setGroupid(s);
				}					
			}
			if(root.getElementsByTagName("message_key")!=null){
				Element nnode=(Element)root.getElementsByTagName("message_key").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setMessage_key(s);
				}					
			}
			if(root.getElementsByTagName("audiotime")!=null){
				Element nnode=(Element)root.getElementsByTagName("audiotime").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setAudiotime(s);
				}					
			}
			if(root.getElementsByTagName("groupname")!=null){
				Element nnode=(Element)root.getElementsByTagName("groupname").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setGroupname(s);
				}					
			}
			if(root.getElementsByTagName("renshu")!=null){
				Element nnode=(Element)root.getElementsByTagName("renshu").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setCount(s);
				}					
			}
			if(root.getElementsByTagName("time")!=null){
				Element nnode=(Element)root.getElementsByTagName("time").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setTime(s);
				}					
			}
			if(root.getElementsByTagName("touxiang")!=null){
				Element nnode=(Element)root.getElementsByTagName("touxiang").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setPic(s);
				}					
			}
			if(root.getElementsByTagName("url")!=null){
				Element nnode=(Element)root.getElementsByTagName("url").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setAudiopic(s);
				}					
			}
			if(root.getElementsByTagName("name")!=null){
				Element nnode=(Element)root.getElementsByTagName("name").item(0);
				if(nnode!=null&&nnode.getChildNodes().getLength()>0){
					String s=nnode.getFirstChild().getNodeValue();
					vo.setName(s);
				}					
			}
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}
	
	/**
	 * �����������յ���messageKey
	 * @param xml
	 * @return
	 */
	public static String parserServer_reveive_message_key(String xml)
	{
		try
		{
			DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
			ByteArrayInputStream buf = new ByteArrayInputStream(xml.getBytes("UTF-8"));
			DocumentBuilder db=dbf.newDocumentBuilder();
			Document dom=db.parse(buf);
			Element root=dom.getDocumentElement();
			String messageKey="";
			NodeList nodelist=root.getElementsByTagName("server_reveive_message_key");
			if(nodelist!=null)
			{
				Element keynode=(Element)nodelist.item(0);
				if(keynode!=null)
				{
					 messageKey=keynode.getFirstChild().getNodeValue();
				}
			}
			return messageKey;
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		return "";
	}
	
	
	/**
	 * ����client���յ��ķ�������messageKey
	 * @param xml
	 * @return
	 */
	public static String parserMessage_key(String xml)
	{
		try
		{
			DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
			ByteArrayInputStream buf = new ByteArrayInputStream(xml.getBytes("UTF-8"));
			DocumentBuilder db=dbf.newDocumentBuilder();
			Document dom=db.parse(buf);
			Element root=dom.getDocumentElement();
			String messageKey="";
			NodeList nodelist=root.getElementsByTagName("message_key");
			if(nodelist!=null)
			{
				Element keynode=(Element)nodelist.item(0);
				if(keynode!=null)
				{
					 messageKey=keynode.getFirstChild().getNodeValue();
				}
			}
			return messageKey;
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		return "";
	}
	
	
}
